package com.oo.array_$.case_2;

import java.util.Arrays;
import java.util.Scanner;

/**
 * SearchDemo--编写JAVA程序，实现使用数组保存用户输入的5个数字，顺序输出。
 然后再次接收用户输入的查询数据，判断该数是否已经存在于数组之中
 要求：
 1、如果数据存在，输出该数在数组中的位置，并显示该数据前的数组内容
 如果数据不存在，输出“该数据不存在”
 2、使用Arrays.binarySearch ( ) 方法判断数据是否存在于数组中
 3、使用Arrays.toString ( )方法，实现数组数据的顺序输出
 4、如果查询数据是数组的第一个成员，提示“该数据前无数据”
 *
 * @author: Jovi
 * @createTime: 2017-05-11 16:53
 **/
public class SearchDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter 5 numbers：");
        int[] a = new int[5];
        for (int i = 0; i < a.length; i++) {
            a[i]=sc.nextInt();
        }
        System.out.println("All the received data is：" + Arrays.toString(a));
        System.out.println("Please enter a number to query：");
        int num = sc.nextInt();
        Arrays.sort(a);//before use binarySearch,you must sort the array.
        int i = Arrays.binarySearch(a, num);
        if (i > 0) {
            System.out.println("The number in the array position is ：" + (i + 1));
            for (int j = 0; j < i; j++) {
                System.out.print(a[j]+"\t");
            }
            if (i == 0) {
                System.out.println("No data before the number");
            }
        } else {
            System.out.println("The data do not exit");
        }
    }
}
